home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / fcgi_echo.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  83 lines

  1. #
  2. # This script was written by Matt Moore <matt.moore@westpoint.ltd.uk>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10838);
  10.  script_version ("$Revision: 1.12 $");
  11.  name["english"] = "FastCGI samples Cross Site Scripting";
  12.  name["francais"] = "FastCGI samples Cross Site Scripting";
  13.  script_name(english:name["english"], francais:name["francais"]);
  14.  
  15.  desc["english"] =  "
  16. Two sample CGI's supplied with FastCGI are vulnerable 
  17. to cross-site scripting attacks. FastCGI is an 'open extension to CGI 
  18. that provides high performance without the limitations of server 
  19. specific APIs', and is included in the default installation of the 
  20. 'Unbreakable' Oracle9i Application Server. Various other web servers 
  21. support the FastCGI extensions (Zeus, Pi3Web etc).
  22.  
  23. Two sample CGI's are installed with FastCGI, (echo.exe and echo2.exe
  24. under Windows, echo and echo2 under Unix). Both of these CGI's output
  25. a list of environment variables and PATH information for various
  26. applications. They also display any parameters that were provided
  27. to them. Hence, a cross site scripting attack can be performed via
  28. a request such as: 
  29.  
  30. http://www.someserver.com/fcgi-bin/echo2.exe?blah=<SCRIPT>alert(document.domain)</SCRIPT>  
  31.  
  32. Solution: 
  33.  
  34. Always remove sample applications from production servers.
  35.  
  36. Risk factor : High";
  37.  
  38.  script_description(english:desc["english"]);
  39.  
  40.  summary["english"] = "Tests for FastCGI samples Cross Site Scripting";
  41.  
  42.  script_summary(english:summary["english"]);
  43.  
  44.  script_category(ACT_ATTACK);
  45.  
  46.  script_copyright(english:"This script is Copyright (C) 2002 Matt Moore",
  47.         francais:"Ce script est Copyright (C) 2002 Matt Moore");
  48.  family["english"] = "CGI abuses : XSS";
  49.  family["francais"] = "Abus de CGI";
  50.  script_family(english:family["english"], francais:family["francais"]);
  51.  script_dependencie("http_version.nasl", "cross_site_scripting.nasl");
  52.  script_require_ports("Services/www", 80);
  53.  exit(0);
  54. }
  55.  
  56. # Check starts here
  57.  
  58. include("http_func.inc");
  59. include("http_keepalive.inc");
  60.  
  61. port = get_http_port(default:80);
  62. if ( get_kb_item("www/" + port + "/generic_xss") ) exit(0);
  63.  
  64. if(! get_port_state(port)) exit(0);
  65.  
  66. # Avoid FP against Compaq Web Management or HTTP proxy
  67. if (get_kb_item('www/'+port+'/generic_xss')) exit(0);
  68.  
  69. file = make_list("echo", "echo.exe", "echo2", "echo2.exe");
  70.  
  71. for(f = 0; file[f]; f++)
  72.  {
  73.   req = http_get(item:string("/fcgi-bin/", file[f], "?foo=<SCRIPT>alert(document.domain)</SCRIPT>"), port:port);
  74.   r = http_keepalive_send_recv(port:port, data:req, bodyonly:1);
  75.   if ( r == NULL ) exit(0);
  76.   if("<SCRIPT>alert(document.domain)</SCRIPT>" >< r) 
  77.     {
  78.       security_warning(port);
  79.     exit(0);
  80.     }
  81.  }    
  82.  
  83.